The spread of the Internet and the general availability of data connections is changing the way media is provided and used. In particular, conventional television and/or radio (i.e.—audio) services are increasingly giving way to digital network-based streaming media on demand and/or live streaming media. Such streaming media content can be delivered through any digital network, such as a cable company's set top box-based network or a cellular data network, or increasingly, through the Internet, either via wired connection or wireless. The delivery can be to any suitable rendering device, such as an Apple TV or an Xbox 360, which are appropriately connected to a television or monitor, or can be to a combined rendering device and display, such as an Internet TV or to a mobile device, such as player software executing on an Apple iPad, a laptop computer, a mobile phone, etc.
As the market shifts towards delivery of content via such streaming media delivery systems, means to monitor the playback of media need to be developed to improve the user experience and to improve revenue generation models. In particular, the ability to appropriately manage and monitor advertising in such streaming media offers new opportunities to advertisers and content deliverers and a more enjoyable experience for users.
For example, it is desirable, when media is requested by a viewer, to select the advertisements to be shown and/or played during the delivery of the program (i.e.—targeted advertisements), the advertisements being selected based upon any suitable criteria, such as: viewer demographics, including where the player/viewer is located and/or the particular viewer watching the content; the type of rendering device (mobile versus fixed) that the content is being played on; etc. In fact, a wide range of demographic and other criteria could be applied to the selection of which advertisements (or other content) will be shown to which viewers and the full range of such considerations is beyond the scope of the present invention.
However, players and/or devices for rendering streaming media can operate on a model of the user requesting a desired program from a content delivery network and then downloading a manifest (or equivalent) defining the requested program and/or additional content, such as advertisements. In most streaming media systems, the program is arranged in chunks defining fixed portions of the program for rendering (e.g.—ten seconds of video and audio) and the player downloads the chunks of the program as needed.
The manifest defines which chunks represent which portions of the program and includes the information necessary for the player to download, from a content delivery network or other source, the chunks of the requested program necessary for rendering the program and additional content.
In most practical cases, the player will allow the user to fast forward and/or rewind through the downloaded program as desired and thus it is not possible to determine when, or if, a specific viewing event within the program occurs. For example, an advertisement included in the downloaded program may be included twice within the downloaded manifest and, to date, it has not been possible to determine which of the two occurrences has been viewed by a user who may be fast forwarding or rewinding throughout the program (typically referred to as “scrubbing” through the program).
It should also be noted that there is no guaranteed correlation between the chunks of the program downloaded by a player and what is actually rendered by the player, and viewed by the user, as chunks are downloaded and cached by the player and may not ever, in fact, be viewed by a user scrubbing through a program.
For a variety of reasons, it is desired to know when a specific viewing event has occurred and, in many cases, to invoke a corresponding rendering device action when that specific viewing event has occurred. For example, an advertiser may be charged different rates depending upon whether their advertisement is played during the most popular part of a program, or a less popular part and, if the player can determine which specific viewing event has occurred, it can report that event back to the content delivery network, or other interested party. In addition to reporting back, a variety of other rendering device actions can be performed when specific viewing points are reached in a program. A common rendering device action that is often desired by advertisers is to lock the player's controls during playback of an advertisement to prevent fast forwarding through the advertisement. Other rendering device actions can include displaying overlay materials or other content on the player, updating various timers or clocks in the player, etc.
Accordingly, it is desired to have a system and method for defining and uniquely identifying events which occur during the playback of a streaming media program.